Numerous network applications require the synchronization of clocks running at various nodes in the network. The IEEE 1588 protocol, standardized by the Institute of Electrical and Electronic Engineers (IEEE), is a protocol that defines the Precision Time Protocol (PTP), which enables the accurate synchronization of different clocks operating on nodes in a network. Such synchronization of clocks is generally achieved by transmitting data packets containing timestamps to the clocks being synchronized.
The IEEE 1588 protocol is designed to measure the time taken by data packets containing timestamps to travel across a communication medium (typically a wired medium, such as the Ethernet) and the time taken to transport these data packets over intermediate nodes in the network that may have variable buffering delays. In PTP, a timestamp message (also known as a PTP message) is embedded in the data portion of an Ethernet frame by the Media Access Control (MAC) layer. In each such frame, there is typically an 8-bit start frame delimiter (SFD) included after a preamble (usually 7 octets in length). The SFD may have a fixed pattern of 10101011 with the timestamp point being chosen as the 1st bit of the SFD. The timestamp value is the time at which the timestamp point is transmitted on the communications medium. This timestamp value is included in each PTP message that is sent in an Ethernet frame.
There may be a delay, introduced by the physical coding sub-layer (PCS) and possibly other components, between the time instance when a PTP message is generated by the MAC layer and the time instance when the 1st bit of the SFD is transmitted on the communications medium. For some Ethernet applications, the timestamps need to account for this additional latency and the latency of the PCS has to be fixed and known by the MAC layer to achieve high resolution of data at the receiver. However, in IEEE 10G-BASE KR networks, the latency of the PCS may not be fixed and/or known. Moreover, in such 10G-BASE KR networks with forward error correction (FEC), a transcoding block removes one sync bit in each 66-bit PCS codeword to create space for parity check bits. Because this process changes the position of the original message bits, the PTP protocol should account for this change in order to correctly determine the appropriate timestamp values to be transmitted in PTP messages. For applications that may demand rates at or above 10GE and for applications that may require a high amount of accuracy, there is a need for allowing a MAC layer to transmit appropriate timestamps, which take into account FEC changes and other delays.